/**
 * Copyright (C) 2008 aileron.cc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package cc.aileron.jww.core.category;

import cc.aileron.commons.interconversion.InterconversionMap;

/**
 * PC(プレイヤーキャラクター)の役職
 * @author Aileron
 *
 */
public enum PlayerCharacterRoleCategory
{
    /**
     * 村人
     */
    villager,
    
    /**
     * 狼
     */
    werewolf,
    
    /**
     * 守護者
     */
    guardian,
    
    /**
     * 結社員
     */
    freemason,
    
    /**
     * 狂人
     */
    lunatic,
    
    /**
     * 占い師
     */
    seer,
    
    /**
     * 霊能者
     */
    medium;
    
    /**
     * @return intValue
     */
    public int intValue()
    {
        return convert.convert(this);
    }
    
    /**
     * valueOf
     * @param value
     * @return
     */
    public static PlayerCharacterRoleCategory valueOf(final int value)
    {
        return convert.convert(value);
    }
    
    /**
     * convert-map
     */
    private static final InterconversionMap<PlayerCharacterRoleCategory> convert = 
        new InterconversionMap<PlayerCharacterRoleCategory>();
    static
    {
        convert.set(0,villager);
        convert.set(1,werewolf);
        convert.set(2,guardian);
        convert.set(3,freemason);
        convert.set(4,lunatic);
        convert.set(5,seer);
        convert.set(6,medium);
    }
}